home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / wc3x / dupmsg24.zip / DUPMSG.DOC next >
Text File  |  1992-12-12  |  22KB  |  557 lines

  1. ┌──────────────────────────────────────────┐
  2. │ DupMsg.exe     v2.40           12-12-92  │
  3. └──────────────────────────────────────────┘
  4.  
  5. What it Does
  6. ------------
  7.  
  8. DupMsg finds and deletes duplicate messages from WildCat! 3.0 and
  9. 3.5 message databases.  Duplicates will be identified even if the
  10. tagline, date or subject line has been changed.  In addition,
  11. DupMsg will delete old messages by date, purge messages over the
  12. MakeWild limit, and delete messages from specific users as desired.
  13.  
  14. Deleted messages can be completely purged from the database or
  15. internally marked as "deleted" for later review.  Marked messages
  16. can be purged on a subsequent DupMsg run.
  17.  
  18. Since some BBS utilities modify the subject line and the message's
  19. date and time, DupMsg can be configured to ignore both subject and
  20. date/time when identifying duplicates.  PC Relay users should
  21. select the "ignore date/time" option as the PC Relay program does
  22. change the message's date.
  23.  
  24.  
  25. How it Works
  26. ------------
  27.  
  28. Upon opening a database, DupMsg first purges messages that were
  29. marked for later deletion.  It uses the marked-for-deletion key
  30. from the index key file (MSGxxx.IX) to identify these messages.
  31.  
  32. The database is then searched for messages from users listed in the
  33. DUPMSG.LST file.  This process uses a key search so it is quite
  34. fast, unless there are many names in the DUPMSG.LST file.
  35.  
  36. Next, messages from one person at a time are read and each
  37. message's date is checked to see if it is too old.  Old messages
  38. are deleted on this first scan through the database.  Suspected
  39. duplicates are then compared text vs. text and duplicates are
  40. deleted.  If a duplicate pair is found, the message with the higher
  41. message number is deleted.
  42.  
  43. Finally, if the number of messages still exceeds the limit set in
  44. MakeWild, the excess messages will be purged from the database
  45. starting with the lowest message number.  This process is automatic
  46. and is useful when you reduce the number of messages allowed per
  47. conference or use WildMail's no-purge option.  If the MakeWild
  48. limit is set to zero (0), then this option is disabled for DupMsg
  49. and all other message import utilities.
  50.  
  51. The standard tagline format has a space as the first character in
  52. the line, then either an asterisk or square box as the second
  53. character.  DupMsg recognizes the standard formats as well as non-
  54. standard taglines from the following programs:
  55.      PC Relay 4.1x
  56.      SF UTI   3.16
  57.      RBBS-UTI 2.0
  58.  
  59. DupMsg will also handle FidoNet ^@ control lines and word wrapping. 
  60. While the DupMsg author will try to keep up with different non-
  61. standard taglines, the standard format should be used in programs
  62. whenever possible.  Standard formats will allow all programs to
  63. work more efficiently.
  64.  
  65.  
  66. Other Information
  67. -----------------
  68.  
  69. If DupMsg deletes a message with an attached file, the attached
  70. file will be deleted as well.  Text files that are imported using
  71. the <<*.IMP method will not be deleted.
  72.  
  73. Pressing CTRL-C will signal DupMsg to stop processing at the next
  74. safe opportunity, save and close the database, and update the
  75. current message counter.
  76.  
  77. If running DupMsg remotely using the Doorway program, using the
  78. /V:D option to handle direct screen writing.
  79.  
  80. Messages that are marked with the "No Delete" flag will not be
  81. deleted.
  82.  
  83.  
  84. Setup
  85. -----
  86.  
  87. DupMsg can be run from any directory and looks for its
  88. configuration file and the required WildCat files in the path.  As
  89. long as the main WildCat directory is in the path, you should have
  90. no problems with DupMsg.
  91.  
  92. DupMsg uses the following files:
  93.  
  94.      MAKEWILD.DAT        Found using the WCHOME variable, in the
  95.                          current directory, or in the path.
  96.      CONFDESC.DAT        In the same directory as MAKEWILD.DAT.
  97.      NODEINFO.DAT        Path is defined in Makewild.
  98.  
  99.      DUPMSG.CFG          Either found in the current directory or
  100.                          path or will be created by DupMsg's Setup
  101.                          section.
  102.  
  103.      DUPMSG.LST          Found in the current directory or in the
  104.                          path.
  105.  
  106.      DUPMSG.LOG          If found in the current directory or path,
  107.                          all log entries will be added to the
  108.                          current file.  If not found, then a new
  109.                          log file will be created in the current
  110.                          directory.
  111.  
  112.      All the messages conferences are defined using Makewild and
  113.      the descriptions are stored in Confdesc.dat.
  114.  
  115. The first time DupMsg is used, it will run the configuration module
  116. and create a config file.  The config file allows you to customize
  117. the DupMsg program to meet your needs.  The config file options
  118. are:
  119.  
  120.  
  121.                          Master Settings
  122.  
  123.  
  124. 1)  Log Options
  125.  
  126.      No Log:   No information is written to the log or echoed to
  127.                the screen.  If all three fields are set to "No
  128.                Log", then no log file will be created.
  129.  
  130.      Brief:    Displays and logs the message number being deleted
  131.                and the reason for deletion.
  132.  
  133.      Complete: Displays the above information and a second line
  134.                showing the message FROM-name, TO-name, and
  135.                Subject.  For duplicate messages, the message's
  136.                source (uploader) will be noted, if it can be
  137.                determined.
  138.  
  139. 2)  Delete Options
  140.  
  141.      Delete:   Completely delete messages from the database and
  142.                free up the space for new messages.  The drawback
  143.                is that deleted messages cannot be recovered; once
  144.                deleted they are gone forever.
  145.  
  146.      Mark:     Messages are not removed from the database and
  147.                still occupy space on the disk.  Marked messages
  148.                can be reviewed by the Sysop, undeleted, or
  149.                completely deleted at a later time.
  150.  
  151.      * OFF *:  Turns this function off for all conferences.
  152.  
  153. 3)  Duplicate Options
  154.  
  155.      Ignore Date:  Some mail doors replace the date and time of a
  156.                message with the date and time that the message was
  157.                uploaded.  The same message uploaded twice may
  158.                cause a pair of duplicates to have different dates. 
  159.                If YES, duplicate messages with different dates
  160.                and/or times will be deleted.  If NO, they will be
  161.                considered different messages.
  162.  
  163.      Ignore Subject:  If YES, duplicate message with different
  164.                subjects will be deleted.  This can be useful to
  165.                catch duplicate BBS and For Sale advertising.  If
  166.                NO, they will be considered different messages.
  167.  
  168.                Some BBS utilities change a mixed case subject line
  169.                to all upper case.  Because of this, upper and
  170.                lower case differences are always ignored.
  171.  
  172.  
  173.                     Conference Configuration
  174.  
  175. 1)   Purge marked messages:  All messages marked as deleted will be 
  176.      purged from the database.  This option is performed before any 
  177.      duplicate or old messages are marked, so only messages marked
  178.      directly from the WildCat message menu or on prior DupMsg runs
  179.      will be purged from the database.
  180.  
  181. 2)   Delete blocked messages:  This refers to messages from users
  182.      who are listed in the DUPMSG.LST file as being blocked from
  183.      your BBS.  All messages FROM users in your DUPMSG.LST file
  184.      will be deleted.
  185.  
  186. 3)   Delete duplicate messages:  The most important switch in the
  187.      program, this turns duplicate message checking on or off for
  188.      each conference.  Exact duplicates and messages with extra &
  189.      different taglines will be found and the newer message (the
  190.      one with the higher message number) will be deleted.
  191.  
  192. 4)   Delete old messages:  Messages older than the number of days 
  193.      specified will be deleted.  Old messages are determined based
  194.      on the date & time of the messages, not on when the messages
  195.      were introduced to the BBS.  If a messages has the "No Delete"
  196.      flag set (see WildCat docs) then that message will not be
  197.      deleted.
  198.  
  199. 5)   Number of days:  If "Delete Old Messages" is set to "YES", 
  200.      this is the number of days that a message will be kept in the
  201.      database.  The default is 30 days, so messages over 30 days
  202.      old will be deleted, even if they have just been uploaded to
  203.      the BBS.  If this field is set to zero, then all messages will
  204.      be deleted, except those with today's date.
  205.  
  206. 6)   High message number:  Each time the program is run, DupMsg
  207.      stores each conference's high message number in this field. 
  208.      If the current high message number is the same as the number
  209.      stored in the config file, then no duplicate checking is
  210.      performed.  If the current number is larger, then only the new
  211.      messages will be checked as possible duplicates.  If the
  212.      current number is smaller than the config file number, then
  213.      DupMsg will assume that the database has been renumbered and
  214.      will check every message.
  215.  
  216.  
  217. Blocked Messages  (DUPMSG.LST)
  218. ------------------------------
  219. You now have the option of deleting all messages from a given user
  220. name.  When configured to delete blocked messages, DupMsg will read
  221. each line from DUPMSG.LST and search for all messages FROM that
  222. user name.  If found, the message(s) will be marked or deleted as
  223. configured.
  224.  
  225. This is useful for problem users on the network that you cannot
  226. lock out any other way, but it should be used sparingly.  Examples
  227. of proper use are:
  228.  
  229.      --   A user consistently uses foul language, and the source
  230.           BBS is not taking care of it.
  231.      --   A chain letter, advertisement, etc. was left in every
  232.           single message conference.
  233.  
  234. There is a danger that this option may be used for censorship, or
  235. that innocent users may be locked out unnecessarily.  Sysops should
  236. take care to use it only when necessary.
  237.  
  238. The DUPMSG.LST file is a standard text file that contains one line
  239. per user name.  Case is ignored when processing the file.
  240.  
  241.  
  242. Memory Requirements
  243. -------------------
  244.  
  245. DupMsg requires a minimum of 198K to run, but will use up to 255K
  246. if available.  Using maximum memory, DupMsg is able to compare up
  247. to 2000 messages at a time.  Since many BBSs have conferences with
  248. more than 2000 messages, DupMsg selects and processes messages from
  249. only one person at a time.
  250.  
  251. If there are more than 2000 messages from any one user, or if the
  252. program runs out of memory, DupMsg will process the first 2000
  253. messages or as many as it can hold in memory, then go back and
  254. continue duplicate checking from where it left off.  Duplicate
  255. messages will only be missed if one copy is in the first 2000 and
  256. the other copy is in subsequent batches.
  257.  
  258. Remember, the limitation is 2000 messages from a single user, not
  259. 2000 total messages.  DupMsg only checks for duplicates in one
  260. conference at a time.
  261.  
  262.  
  263. Multi-Node BBSs
  264. ---------------
  265.  
  266. If you are running a single-line version of WildCat, DupMsg cannot
  267. be run while the BBS is up, or when any other utility is accessing
  268. the message databases.
  269.  
  270. In order to run DupMsg while the BBS is online, you must be running
  271. a multi-line WildCat version and have either DOS share or Novell
  272. defined in the Makewild program.  In addition, if the autonode
  273. option is not selected in MAKEWILD, the environment variable
  274. WCNODEID must be set to a valid number between 1 and 250.
  275.  
  276. Use the following command:
  277.  
  278.      SET WCNODEID=3
  279.  
  280. using 3 or whichever node ID you wish to use.  This node ID must
  281. not be duplicated.  No other BBS node or program using this node ID
  282. may be running while DupMsg is accessing the message databases.
  283.  
  284.  
  285. WCHOME Environment Variable
  286. ---------------------------
  287.  
  288. Although not required, you may specify your main WildCat directory
  289. using the WCHOME environment variable.  While this will not save
  290. any noticeable time, it may serve to avoid confusion especially if
  291. you have more than one copy of MAKEWILD.DAT or CONFDESC.DAT on your
  292. disk.  The following is an example:
  293.  
  294.      SET WCHOME=C:\WC30
  295.  
  296.  
  297. Log File
  298. --------
  299.  
  300. DupMsg writes to a log file which records information as specified
  301. in the config file.  The default log file is DUPMSG.LOG, but like
  302. the default config file it can be changed by entering a number on
  303. the command line.  The section on command line options covers this
  304. option in more detail.
  305.  
  306. If the log file is not found in the current directory or in the
  307. path, a new log file will be created in the current directory.  If
  308. a log file is found, DupMsg will add log information to the end of
  309. it.
  310.  
  311.  
  312. Command Line Options
  313. --------------------
  314.  
  315. There are five optional command line parameters.  These are:
  316.  
  317. SETUP:    Runs the setup program to create and/or modify a config
  318.           file.
  319.  
  320. RESET:    Resets the config file high message numbers to zero.
  321.  
  322. HIGH:     Sets the config file high message numbers to match the
  323.           database high message number.  This is useful after a
  324.           database renumber.
  325. HELP:     Display the DupMsg help screen.
  326. 1-99:     An optional number specifies which configuration and log
  327.           files to use.  If a number is specified, the default
  328.           config file  "DUPMSG.CFG" is not used.  Instead, a config
  329.           file numbered DUPMSG1.CFG to DUPMSG99.CFG will be used.
  330.           For example:
  331.  
  332.           DUPMSG 15
  333.  
  334.           will tell DupMsg to use config file 'DUPMSG15.CFG' and
  335.           log file 'DUPMSG15.LOG'.
  336.  
  337. If no command line parameters are used, DupMsg will use the values
  338. in DUPMSG.CFG to run the DupMsg program and log information to
  339. DUPMSG.LOG.
  340.  
  341.  
  342. DOS Errorlevel
  343. --------------
  344.  
  345. DupMsg returns one of three DOS errorlevels at the end of the
  346. program.  These errorlevels can be tested in a batch file to
  347. perform special functions (like deleting the log file) if desired.
  348.  
  349. Errorlevel 2:  DupMsg ended abnormally.  A required file may be
  350.                missing, there may be memory problems, or perhaps
  351.                there was a database error.  See the log file for
  352.                more details.
  353.  
  354. Errorlevel 1:  DupMsg successfully deleted some duplicate
  355.                messages.  If you are interested in which
  356.                duplicates were found, you can use the batch file
  357.                to save the log for later reading.
  358.  
  359. Errorlevel 0:  DupMsg ended successfully but did not find any
  360.                duplicates, though some old or marked messages may
  361.                have been deleted.
  362.  
  363. Batch files can be setup to test for errorlevels as follows:
  364.  
  365.      If Errorlevel = 2  .......
  366.      If Errorlevel = 1  .......
  367.      If Errorlevel = 0  .......
  368.  
  369. If the errorlevel test is true, whatever follows it will be treated
  370. like a regular DOS command.  There are some exceptions, so refer to
  371. a good DOS reference for assistance.
  372.  
  373. Remember that if errorlevel 2 is true, both of the following lines
  374. (errorlevel 1 & 0) will also be true.  Batch files can be
  375. programmed to skip lines by using GOTO statements, such as:
  376.  
  377.      If Errorlevel = 2 goto ERROR
  378.      If Errorlevel = 1 goto SAVE
  379.      If Errorlevel = 0 goto DELETE
  380.      :ERROR
  381.           {Perform error processing}
  382.      Goto END
  383.  
  384.      :SAVE
  385.           {Save the log file for later reading}
  386.      Goto END
  387.  
  388.      :DELETE
  389.           {Delete the log file}
  390.  
  391.      :END
  392.  
  393.  
  394. Registration & Support
  395. ----------------------
  396.  
  397. DupMsg is distributed as shareware.  Shareware software allows you
  398. to try before you buy, thus you never need to pay for a shareware
  399. program that does not meet your needs.
  400.  
  401. You may use DupMsg for 30 days at no charge, allowing you a chance
  402. to see if DupMsg meets your needs.  If you keep using DupMsg after
  403. 30 days, you must register the software by sending in the
  404. registration form and paying the registration fee of $20 (US). 
  405. Should you forget to register, DupMsg will start to display a
  406. reminder on the screen and wait a few seconds before continuing.
  407.  
  408. Registration entitles the purchaser to use DupMsg on one BBS
  409. system.  A BBS system is defined as either a single computer
  410. system, or a network system where multiple computers are connected
  411. by direct cable to the same network server.
  412.  
  413. Even after you register DupMsg, your satisfaction is guaranteed. 
  414. If within 30 days after registering DupMsg, you decide that you no
  415. longer wish to use the program, simply write a letter to the author
  416. requesting a refund and your registration fee will be refunded. 
  417. Only the registration fee will be refunded, not the cost of
  418. diskettes that may have been ordered.
  419.  
  420. The author can be reached via the WildNet, FidoNet, and MSInet mail
  421. networks;  Address messages to Jim Metzler.
  422.  
  423. Registration fees and requests for additional information should be
  424. addressed to:
  425.  
  426. Jim Metzler
  427. WPI Box 188
  428. 100 Institute Rd.
  429. Worcester, MA 01609
  430.  
  431. Voice: (508) 799-7540
  432. BBS:   (508) 754-6512
  433.  
  434. Distribution 
  435. ------------
  436. Several WildNet Sysops have agreed to post DupMsg in its original
  437. ARJ archive with Security Envelope.  Thanks go to these Sysops and
  438. the many others who have supported DupMsg.
  439.  
  440. The original archive may be downloaded from the following BBSs:
  441.  
  442. Miwok Village        --  Worcester, MA         --  (508) 754-6512
  443. MSI HQ BBS           --  Bakersfield, CA       --  (805) 395-0250
  444.  
  445. B-Line BBS           --  Muncie, IN            --  (317) 288-5569
  446. Bun's BBS            --  San Francisco, CA     --  (415) 756-5098
  447. Lost BBS             --  Overland Park, KS     --  (913) 642-0349
  448. NoHo BBS             --  Hesperia, CA          --  (619) 949-4025
  449. Programmer's Forum   --  Fountain Inn, SC      --  (803) 862-4616
  450.  
  451. Data Base Forum      --  Oslo, Norway          --  +47-2-295626
  452. Gil's PC             --  Chapeau, Quebec       --  (819) 689-5465
  453.  
  454.  
  455. DupMsg, Censor and the Enhanced UTIs can be F'Reqed from:
  456.  
  457.      Programmer's Forum --  HST Dual Std.      --  (1:3639/2)
  458.      Lost BBS           --  Compucom, V.32     --  (1:280/319)
  459.      B-Line BBS         --  HST Dual Std.      --  (1:231/440)
  460.  
  461. The request names are DUPMSG, CENSOR and UTI.
  462.  
  463.  
  464. You are authorized to distribute DupMsg provided the executable
  465. program, documentation, and registration form are included in their
  466. original, unmodified state.  No fee may be charged for the
  467. distribution of DupMsg without the express written permission of
  468. the author.
  469.  
  470. Please do not compress the executable program; testing has shown
  471. that DupMsg takes approximately 10% longer to perform a given task
  472. when compressed versus its original, un-compressed state.
  473.  
  474.  
  475. Warranty Disclosure
  476. -------------------
  477.  
  478. Normally, software distributed through bulletin boards systems or
  479. shared from one user to another does not carry a warranty, mainly
  480. because the author does not have control over the product and the
  481. program can be modified either intentionally or accidentally
  482. without the author's knowledge.
  483.  
  484. Recognizing this, DupMsg carries either no warranty or a limited
  485. warranty depending on the distribution method.
  486.  
  487. LIMITED WARRANTY:
  488.  
  489.      This applies only when the program is received directly from
  490.      the author on diskette, or when it is received in the original
  491.      ARJ archive, complete with a valid Security Envelope.  The ARJ
  492.      Security Envelope must read "ARJ archive created by James W.
  493.      Metzler R#0301".  The user must keep the diskette or original
  494.      ARJ archive as proof of this warranty.
  495.  
  496.      What is covered:  The DupMsg program will perform
  497.      substantially as described in this document.  In addition,
  498.      while the program may contain minor bugs or errors, it is
  499.      warranted to be free of major defects for a period of six
  500.      months.
  501.  
  502.      What is not covered:  The author will not be liable for
  503.      incidental and/or consequential damages, including injury to
  504.      property, interruption of service, loss of business and/or
  505.      anticipated profits, or other consequential damages that may
  506.      result from use, malfunction or failure of the DupMsg program,
  507.      or from errors or omissions in the documentation.  Some states
  508.      do not allow the exclusion or limitation of incidental or
  509.      consequential damages, so the above limitation may not apply
  510.      to you.
  511.  
  512.      Any attempt to modify the DupMsg program will void this
  513.      warranty in its entirety.
  514.  
  515.      If there is a problem:  Within 60 days of notification that a
  516.      major defect exists, the author, at his discretion, will
  517.      either fix the program and forward the replacement at no cost
  518.      to the registered user, or will refund the registration fee.
  519.  
  520.      How to get service:  Send a written letter to the author
  521.      detailing the type of problem and symptoms experienced. 
  522.      Include your name, address, voice phone number and
  523.      registration number and any additional information that you
  524.      believe may be useful, such as any TSRs and disk cache
  525.      programs in use.
  526.  
  527.      The author may contact you by voice or written letter for more
  528.      information to help in tracking down the problem.
  529.  
  530.  
  531. NO WARRANTY:
  532.  
  533.      If you did not receive the DupMsg program directly from the
  534.      author, or in its original ARJ archive with a genuine Security
  535.      Envelope (see above), then there is a possibility that the
  536.      program and/or documentation has been modified, or that the
  537.      program is not the author's work.  The author makes no
  538.      warranty of any kind, express or implied, including any
  539.      warranties of fitness and/or merchantability if the program
  540.      was received from other sources.
  541.      The author will not be liable for any damages, whether direct,
  542.      indirect, special or consequential arising from a failure of
  543.      this program to operate in the manner desired by the user. 
  544.      The author will not be liable for any damage to data or
  545.      property which may be caused directly or indirectly by use of
  546.      the program.
  547.  
  548. When trying new software, always backup any and all important files
  549. on your system.
  550.  
  551.  
  552. Copyright
  553. ---------
  554.  
  555. This program is:
  556. Copyright (c) 1991, 1992 James W. Metzler, All Rights Reserved.
  557.